home *** CD-ROM | disk | FTP | other *** search
/ The Business Master (3rd Edition) / The Business Master (3rd Edition).iso / files / spreotus / 123fin / kalk.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-03-31  |  20.4 KB  |  632 lines

  1. 1  KEY(10) ON:ON KEY(10) GOSUB 3
  2. 2  GOTO 5
  3. 3  RUN"MENU.BAT"+CHR$(13)
  4. 5  CLS
  5. 6  LOCATE 24,24:PRINT "Press F10 to return to menu>
  6. 100  DIM CF#(60)
  7. 110  DIM PV#(60)
  8. 120  CLS
  9. 130  PRINT:PRINT:PRINT
  10. 140  PRINT:PRINT:PRINT:PRINT
  11. 150  PRINT "                          \\\\\\\\\\\\\\\\\\\\\\\\\\\\"
  12. 160  PRINT "                          \$$$$$$$$$$$$$$$$$$$$$$$$$$$"
  13. 170  PRINT "                          \$$$$$                 $$$$$"
  14. 180  PRINT "                          \$$$$      K-A-L-K      $$$$"
  15. 190  PRINT "                          \$$$$$                 $$$$$"
  16. 200  PRINT "                          \$$$$$$$$$$$$$$$$$$$$$$$$$$$"
  17. 210  FOR X  =  1 TO 6:PRINT:NEXT X
  18. 220  PRINT "                     A Compound Interest Calculation Program"
  19. 230  FOR COUNT  =  1 TO 2000
  20. 240  NEXT COUNT
  21. 250  CLS
  22. 260  FOR X  =  1 TO 5:PRINT:NEXT X
  23. 270  PRINT "                     \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"
  24. 280  PRINT "                     \$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
  25. 290  PRINT "                     \$                                 $"
  26. 300  PRINT "                     \$ This is a public domain program $"
  27. 310  PRINT "                     \$                                 $"
  28. 320  PRINT "                     \$       by Paul Buchanan          $"
  29. 330  PRINT "                     \$                                 $"
  30. 340  PRINT "                     \$       Peoria, Illinois          $"
  31. 350  PRINT "                     \$                                 $"
  32. 360  PRINT "                     \$  and may be distributed freely. $"
  33. 370  PRINT "                     \$                                 $"
  34. 380  PRINT "                     \$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
  35. 390  FOR COUNT  =  1 TO 2000
  36. 400  NEXT COUNT
  37. 410  CLS
  38. 420  FOR X  =  1 TO 5:PRINT:NEXT X
  39. 430  PRINT "                       \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"
  40. 440  PRINT "                       \$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
  41. 450  PRINT "                       \$                             $"
  42. 460  PRINT "                       \$         The Author          $"
  43. 470  PRINT "                       \$                             $"
  44. 480  PRINT "                       \$  assumes no responsibility  $"
  45. 490  PRINT "                       \$                             $"
  46. 500  PRINT "                       \$   resulting from the use    $"
  47. 510  PRINT "                       \$                             $"
  48. 520  PRINT "                       \$      of this material.      $"
  49. 530  PRINT "                       \$                             $"
  50. 540  PRINT "                       \$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
  51. 550  FOR COUNT  =  1 TO 2500
  52. 560  NEXT COUNT
  53. 570  CLS:FOR COUNT = 1 TO 10:PRINT:NEXT COUNT
  54. 580  PRINT "            ***  PROGRAM ACCEPTS ONLY CAPITAL LETTERS  ***"
  55. 590  PRINT
  56. 600  PRINT "                   PLEASE TURN >>> CAPLOCK <<< ON
  57. 610  FOR COUNT = 1 TO 2500:NEXT COUNT
  58. 620  CLS
  59. 630  LET A$=""
  60. 640  PRINT
  61. 650  PRINT "                            $$$$ MAIN MENU $$$$"
  62. 660  PRINT:PRINT
  63. 670  PRINT "                 I. Typical Compound Interest Calculations"
  64. 680  PRINT:PRINT "                     SOLVE FOR:"
  65. 690  PRINT:PRINT "                       (A) NUMBER OF PERIODS (N)
  66. 700  PRINT "                       (B) INTEREST RATE (I)
  67. 710  PRINT "                       (C) PRESENT VALUE (PV)
  68. 720  PRINT "                       (D) PAYMENT (PMT)
  69. 730  PRINT "                       (E) FUTURE VALUE (or BALLOON)
  70. 740  PRINT
  71. 750  PRINT "                II. Compound Interest Utility Calculations"
  72. 760  PRINT:PRINT "                     SOLVE FOR:
  73. 770  PRINT:PRINT "                       (G) INTERNAL RATE OF RETURN (IRR)"
  74. 780  PRINT "                       (H) NET PRESENT VALUE (NPV)"
  75. 783  PRINT "                       (X)  To EXIT to SYSTEM
  76. 786  PRINT "                       F1O  To Return to Main MENU
  77. 790  PRINT:PRINT
  78. 800  BEEP:BEEP:BEEP
  79. 810  PRINT "         WHICH CALCULATION?
  80. 820  A$=INKEY$ : IF A$ ="" THEN 820
  81. 830  IF A$ = "A" THEN 940
  82. 840  IF A$ = "B" THEN 1340
  83. 850  IF A$ = "C" THEN 1830
  84. 860  IF A$ = "D" THEN 2240
  85. 870  IF A$ = "E" THEN 2640
  86. 880  IF A$ = "F" THEN 6220
  87. 890  IF A$ = "G" THEN 4010
  88. 900  IF A$ = "H" THEN 5080
  89. 910  IF A$ = "X" THEN SYSTEM
  90. 920  GOTO 620
  91. 930  REM ****************** NUMBER OF PERIODS **********************
  92. 940  CLS
  93. 950  PRINT "          SOLVING FOR 'NUMBER OF PERIODS':"
  94. 960  PRINT : PRINT
  95. 970  PRINT "          WHAT IS THE ANNUAL INTEREST RATE"
  96. 980  INPUT "                         (I.E., 14.3)       ";I#
  97. 990  PRINT
  98. 1000  INPUT "          WHAT IS THE PRESENT VALUE         ";PV#
  99. 1010  PRINT
  100. 1020  INPUT "          WHAT IS THE PAYMENT AMOUNT        ";PMT#
  101. 1030  PRINT
  102. 1040  INPUT "          HOW MANY PAYMENTS EACH YEAR       ";MO#
  103. 1050  PRINT
  104. 1060  INPUT "          PAYMENTS IN ADVANCE (Y/N)         ";T$
  105. 1070  IF T$  =  "N" THEN S  =  0 :ELSE S = 1
  106. 1080  PRINT
  107. 1090  PRINT "          AMOUNT OF RESIDUAL OR BALLOON"
  108. 1100  INPUT "            AT END OF LAST PERIOD ";FV#
  109. 1110  TST#  =  I#*PV#*PMT#*MO#
  110. 1120  IF TST#  =  0 THEN GOSUB 6080
  111. 1130  IF TST#  =  0 GOTO 940
  112. 1140  I#  =  I#/100/MO#
  113. 1150  N1#  =  I#*FV#-(1 +I#*S)*PMT#
  114. 1160  N2#  =  I#*PV#-(1 + I#*S)*PMT#
  115. 1170  N1#  =  N1#/N2#
  116. 1180  N1# = LOG(N1#)
  117. 1190  D#  =  LOG(1 + I#)
  118. 1200  N#  =  N1#/D#
  119. 1210  REM ***** RESET INTEREST
  120. 1220  I#  =  I#*MO#*100
  121. 1230  PRINT
  122. 1240  BEEP
  123. 1250  PRINT USING "               THE TERM IS >>> ###.## <<< MONTHS";N#/MO#*12
  124. 1260  PRINT:PRINT:PRINT
  125. 1270  PRINT "          HIT 'R' FOR RECOMPUTE OR 'M' FOR MAIN MENU"
  126. 1280  C$  = INKEY$:IF C$  =  "" THEN 1280
  127. 1290  IF C$  =  "H" THEN 3050
  128. 1300  IF C$  =  "R" THEN 940
  129. 1310  IF C$  =  "M" THEN 620
  130. 1320  GOTO 620
  131. 1330  REM ****************** INTEREST RATE **************************
  132. 1340  CLS
  133. 1350  PRINT
  134. 1360  PRINT "          SOLVING FOR 'INTEREST RATE':"
  135. 1370  PRINT : PRINT
  136. 1380  INPUT "          WHAT IS THE TERM (IN MONTHS)      ";N#
  137. 1390  PRINT
  138. 1400  INPUT "          WHAT IS THE PRESENT VALUE         ";PV#
  139. 1410  PRINT
  140. 1420  INPUT "          WHAT IS THE PAYMENT AMOUNT        ";PMT#
  141. 1430  PRINT
  142. 1440  INPUT "          HOW MANY PAYMENTS EACH YEAR       ";MO#
  143. 1450  PRINT
  144. 1460  INPUT "          PAYMENTS IN ADVANCE (Y/N)         ";T$
  145. 1470  IF T$  =  "N" THEN S  = 0 ELSE S  = 1
  146. 1480  PRINT
  147. 1490  PRINT "          AMOUNT OF RESIDUAL OR BALLOON
  148. 1500  INPUT "                   AT END OF LAST PERIOD    ";FV#
  149. 1510  TST#  =  N#*PV#*PMT#*MO#
  150. 1520  IF TST#  =  0 THEN GOSUB 6080
  151. 1530  IF TST#  =  0 THEN 1340
  152. 1540  I#  =  0.15/MO#
  153. 1550  N#  =((-N#/12)*MO#)
  154. 1560  V#  =  -PV#+PMT#*(1+I#*S)*(1 -(1+I#)^N#)/I#+FV#*(1+I#)^N#
  155. 1570  IF S = 1 GOTO 1600
  156. 1580  V1# = (PMT#*(-N#*I#*((1+I#)^(N#-1))-1+(1+I#)^N#)/(I#*I#))+N#*FV#*((1+I#)^(N#-1))
  157. 1590  GOTO 1610
  158. 1600  V1# = PMT#*(1+I#)/I#*((-N#*I#*(1+I#)^(N#-1)-1+(1+I#)^N#)/I#)+((1-(1+I#)^N#)/I#)+N#*FV#*(1+I#)^(N#-1)
  159. 1610  I2# = I#-(V#/V1#)
  160. 1620  IF ABS(I#-I2#) <=9E-09 THEN 1650
  161. 1630  I# = I2#
  162. 1640  GOTO 1560
  163. 1650  I#  =  I2#
  164. 1660  I#  =  I#*MO#
  165. 1670  REM ***** RESET INTEREST AND NUMBER
  166. 1680  I#  =  I#*100
  167. 1690  PRINT
  168. 1700  BEEP
  169. 1710  PRINT USING "                 THE ANNUAL INTEREST RATE IS >>> ###.##% <<<";((INT((I#*1000)*100+0.5))/100)/1000
  170. 1720  PRINT:PRINT:PRINT
  171. 1730  REM ****** RESET INTEREST AND NUMBER *******
  172. 1740  N#  =  ((N#/MO#)*-12)
  173. 1750  PRINT "          HIT 'H' FOR HARDCOPY, 'R' FOR RECOMPUTE,"
  174. 1760  PRINT "                OR 'M' FOR MAIN MENU."
  175. 1770  C$  = INKEY$:IF C$  =  "" THEN 1770
  176. 1780  IF C$  =  "H" THEN 3050
  177. 1790  IF C$  =  "R" THEN 1340
  178. 1800  IF C$  =  "M" THEN 620
  179. 1810  GOTO 620
  180. 1820  REM ************************* SOLVING FOR PRESENT VALUE *******************
  181. 1830  CLS
  182. 1840  PRINT
  183. 1850  PRINT "          SOLVING FOR 'PRESENT VALUE':"
  184. 1860  PRINT : PRINT
  185. 1870  INPUT "          WHAT IS THE TERM (IN MONTHS)    ";N#
  186. 1880  PRINT
  187. 1890  PRINT "          WHAT IS THE ANNUAL INTEREST"
  188. 1900  INPUT "                 RATE (I.E., 14.3)        ";I#
  189. 1910  PRINT
  190. 1920  INPUT "          WHAT IS THE PAYMENT AMOUNT      ";PMT#
  191. 1930  PRINT
  192. 1940  INPUT "          HOW MANY PAYMENTS EACH YEAR     ";MO#
  193. 1950  PRINT 
  194. 1960  INPUT "          PAYMENTS IN ADVANCE (Y/N)       ";T$
  195. 1970  PRINT
  196. 1980  PRINT "          AMOUNT OF RESIDUAL OR BALLOON"
  197. 1990  INPUT "                    AT END OF LAST PERIOD ";FV#
  198. 2000  PRINT
  199. 2010  TST#  =  N#*I#*PMT#*MO#
  200. 2020  IF TST#  =  0 THEN GOSUB 6080
  201. 2030  IF TST#  =  0 THEN 1820
  202. 2040  IF T$  =  "N" THEN S  =  0 ELSE S  = 1
  203. 2050  N#  =  MO#*N#/12
  204. 2060  N#  = -N#
  205. 2070  I#  =  I#/100/MO#
  206. 2080  PV#  = PMT#*(1+I#*S)*((1-(1+I#)^N#)/I#)+FV#*(1+I#)^N#
  207. 2090  PV#  =  INT(PV#*100+0.5)/100
  208. 2100  BEEP
  209. 2110  PRINT USING "           THE PRESENT VALUE IS >>> $#,###,###.## <<<";PV#
  210. 2120  REM ***** RESET INTEREST AND NUMBER
  211. 2130  N#  =  N#/MO#*-12
  212. 2140  I#  =  I#*100*MO#
  213. 2150  PRINT:PRINT:PRINT
  214. 2160  PRINT "          HIT 'H' FOR HARDCOPY, 'R' FOR RECOMPUTE,"
  215. 2170  PRINT "                   OR 'M' FOR MAIN MENU."
  216. 2180  C$  = INKEY$:IF C$  =  "" THEN 2180
  217. 2190  IF C$  =  "H" THEN 3050
  218. 2200  IF C$  =  "R" THEN 1830
  219. 2210  IF C$  =  "M" THEN 620
  220. 2220  GOTO 620
  221. 2230  REM ****************** PAYMENT ********************************
  222. 2240  CLS
  223. 2250  PRINT
  224. 2260  PRINT "          SOLVING FOR 'PAYMENT':"
  225. 2270  PRINT : PRINT
  226. 2280  INPUT "          WHAT IS THE TERM IN MONTHS     ";N#
  227. 2290  PRINT
  228. 2300  PRINT "          WHAT IS THE ANNUAL INTEREST"
  229. 2310  INPUT "                    RATE (I.E., 14.3)    ";I#
  230. 2320  PRINT
  231. 2330  INPUT "          WHAT IS THE PRESENT VALUE      ";PV#
  232. 2340  PRINT
  233. 2350  INPUT "          HOW MANY PAYMENTS EACH YEAR    ";MO#
  234. 2360  PRINT
  235. 2370  INPUT "          PAYMENTS IN ADVANCE (Y/N)      ";T$
  236. 2380  PRINT
  237. 2390  PRINT "          AMOUNT OF RESIDUAL OR BALLOON"
  238. 2400  INPUT "                  AT END OF LAST PERIOD  ";FV#
  239. 2410  PRINT
  240. 2420  TST# = N#*I#*PV#*MO#
  241. 2430  IF TST# =0 THEN GOSUB 6080
  242. 2440  IF TST# =0 THEN 2230
  243. 2450  IF T$ ="N" THEN S =0 ELSE S=1
  244. 2460  N# =-MO#*N#/12
  245. 2470  I# = I#/100/MO#
  246. 2480  PMT# =(PV#-(FV#*(1+I#)^N#))/((1+I#*S)*(1-(1+I#)^N#)/I#)
  247. 2490  PMT# =INT(PMT#*100+0.5)/100
  248. 2500  REM ***** RESET INTEREST AND NUMBER
  249. 2510  N# =N#/MO#*-12
  250. 2520  I# = I#*MO#*100
  251. 2530  BEEP
  252. 2540  PRINT USING  "          THE PAYMENT PER PERIOD IS >>> $#,###,###.## <<<";PMT#
  253. 2550  PRINT:PRINT
  254. 2560  PRINT "          HIT 'H' FOR HARDCOPY, 'R' FOR RECOMPUTE,"
  255. 2570  PRINT "                    OR 'M' FOR MAIN MENU."
  256. 2580  C$ = INKEY$:IF C$ = "" THEN 2580
  257. 2590  IF C$ = "H" THEN 3050
  258. 2600  IF C$ = "R" THEN 2240
  259. 2610  IF C$ = "M" THEN 620
  260. 2620  GOTO 620
  261. 2630  REM ****************** FUTURE VALUE ***************************
  262. 2640  CLS
  263. 2650  PRINT
  264. 2660  PRINT "          SOLVING FOR 'FUTURE VALUE':"
  265. 2670  PRINT : PRINT
  266. 2680  INPUT "          WHAT IS THE TERM IN MONTHS    ";N#
  267. 2690  PRINT
  268. 2700  PRINT "          WHAT IS THE ANNUAL INTEREST"
  269. 2710  INPUT "                    RATE (I.E., 14.3)   ";I#
  270. 2720  PRINT
  271. 2730  INPUT "          WHAT IS THE PRESENT VALUE     ";PV#
  272. 2740  PRINT
  273. 2750  INPUT "          WHAT IS THE PAYMENT AMOUNT    ";PMT#
  274. 2760  PRINT
  275. 2770  INPUT "          HOW MANY PAYMENTS EACH YEAR   ";MO#
  276. 2780  PRINT
  277. 2790  INPUT "          PAYMENTS IN ADVANCE (Y/N)     ";T$
  278. 2800  PRINT
  279. 2810  TST# = N#*I#*PMT#*MO#*PV#
  280. 2820  IF TST# = 0 THEN GOSUB 6080
  281. 2830  IF TST# =0 THEN 2630
  282. 2840  IF T$ = "N" THEN S = 0 ELSE S = 1
  283. 2850  I# = I#/100/MO#
  284. 2860  N# =-N#*MO#/12
  285. 2870  F1# =PV#-(1+I#*S)*PMT#*((1-(1+I#)^N#)/I#)
  286. 2880  F2# =(1+I#)^N#
  287. 2890  FV# =F1#/F2#
  288. 2900  FV# =INT(FV#*100+0.5)/100
  289. 2910  BEEP
  290. 2920  PRINT USING "          THE FUTURE VALUE IS >>> $#,###,###.## <<<";FV#
  291. 2930  PRINT
  292. 2940  REM ***** RESET INTEREST AND NUMBER
  293. 2950  N# = N#/MO#*(-12)
  294. 2960  I# =I#*MO#*100
  295. 2970  PRINT "          HIT 'H' FOR HARDCOPY, 'R' FOR RECOMPUTE,"
  296. 2980  PRINT "                    OR 'M' FOR MAIN MENU."
  297. 2990  C$ =INKEY$:IF C$ = "" THEN 2990
  298. 3000  IF C$ ="H" THEN 3050
  299. 3010  IF C$ = "R" THEN 2640
  300. 3020  IF C$ ="M" THEN  620
  301. 3030  GOTO 620
  302. 3040  REM ****************** A-E HARDCOPY PROCEDURE *********
  303. 3050  CLS
  304. 3060  PRINT:PRINT:PRINT:PRINT:PRINT
  305. 3070  LINE INPUT "ENTER TODAY'S DATE:  ";D$
  306. 3100  PRINT : PRINT : PRINT
  307. 3110  CLS
  308. 3120  PRINT:PRINT:PRINT:PRINT:PRINT
  309. 3130  LINE INPUT "REFERENCE NAME:  ";CN$
  310. 3150  CLS
  311. 3160  PRINT:PRINT:PRINT:PRINT:PRINT
  312. 3170  PRINT "          PERCENT TO INCREASE TERMINATION VALUE"
  313. 3180  PRINT:PRINT "          TO COVER ADMINISTRATIVE EXPENSE"
  314. 3190  PRINT
  315. 3200  INPUT "          ON TERMINATION (I.E., 5% = 5.0) : ";A%
  316. 3210  CLS:PRINT:PRINT:PRINT:PRINT:PRINT
  317. 3220  INPUT "HOW MANY COPIES WOULD YOU LIKE";CC
  318. 3223  CLS:PRINT:PRINT:PRINT:PRINT
  319. 3225  INPUT "DO YOU WANT COMPUTATION PARAMETERS AT BOTTOM (Y/N)  ";BOT$
  320. 3240  CLS
  321. 3250  FOR X=1 TO 10:PRINT:NEXT X
  322. 3260  PRINT "                            $$$$$$$$$$$$$$$$$$$$$$$$$"
  323. 3270  PRINT "                            $$$$ P R I N T I N G $$$$"
  324. 3280  PRINT "                            $$$$$$$$$$$$$$$$$$$$$$$$$"
  325. 3290  LPRINT
  326. 3300  LPRINT"                              BOB TOLSON"
  327. 3310  LPRINT"                              552 E IDLEWOOD"
  328. 3320  LPRINT"                              MORTON,ILLINOIS"
  329. 3330  LPRINT"                                    61550"
  330. 3340  LPRINT
  331. 3350  LPRINT  "  DATE: ";D$
  332. 3360  LPRINT
  333. 3370  LPRINT  "  REFERENCE: ";CN$
  334. 3380  LPRINT  : LPRINT
  335. 3390  LPRINT  "           BEGINNING                               ENDING     TERMINATION"
  336. 3400  LPRINT  "   PERIOD   BALANCE      PAYMENT      INTEREST     BALANCE      VALUE (*)"
  337. 3410  LPRINT  "   ------  ----------   ----------   -----------  ----------  ----------"
  338. 3420  LPRINT
  339. 3430  LET PER# = 0
  340. 3435  IF PMT# = 0 THEN PMT# = PMT2#
  341. 3440  LET I2# = 0
  342. 3450  LET BBAL# =PV#
  343. 3460  LET ITOT# = 0
  344. 3470  LET PMTTOT# = 0
  345. 3480  LET PTOT# = 0
  346. 3485  LET TEMP$ = T$
  347. 3490  IF TEMP$ = "Y" THEN K = 0 ELSE K =1
  348. 3500  E = (N#/12)*MO#
  349. 3510  FOR J=K TO E
  350. 3520  PMT1# = PMT#
  351. 3525  LET PMT2# = PMT#
  352. 3530  IF K = 0 AND J = E THEN PMT# = 0
  353. 3540  I2# = BBAL#*(I#/MO#/100)
  354. 3550  I2# = INT(I2#*100+0.5)/100
  355. 3560  IF J = E THEN I2# =-BBAL#+PMT#+FV#
  356. 3570  IF TEMP$ = "Y" THEN GOSUB 3940
  357. 3580  ITOT# = ITOT# + I2#
  358. 3590  PMTTOT# = PMTTOT# + PMT#
  359. 3600  PTOT# = PTOT# + PMT# - I2#
  360. 3610  LET PER# = J
  361. 3620  EBAL# = BBAL# - PMT# + I2#
  362. 3630  IF J = E THEN TEV# = EBAL# ELSE TEV# = EBAL# + (EBAL# * A% / 100)
  363. 3640  GOSUB 3920
  364. 3650  IF J = 45 THEN GOSUB 3970
  365. 3660  BBAL# = EBAL#
  366. 3670  I2# = 0
  367. 3680  NEXT J
  368. 3690  LPRINT
  369. 3700  LPRINT USING  "  TOTALS             #,###,###.## #,###,###.##";PMTTOT#,ITOT#
  370. 3710  LPRINT
  371. 3720  LPRINT  : LPRINT  " (*) END OF PERIOD"
  372. 3730  LPRINT  : LPRINT
  373. 3733  IF BOT$ <> "Y" THEN GOTO 3880
  374. 3740  IF K = 0 THEN STORT$ = "IN ADVANCE" ELSE STORT$ = "IN ARREARS"
  375. 3750  LPRINT  "                               >>>>>>><<<<<<<"
  376. 3760  LPRINT
  377. 3770  LPRINT  "     THIS AMORTIZATION AND TERMINATION VALUE SCHEDULE WAS CONSTRUCTED"
  378. 3780  LPRINT
  379. 3790  LPRINT USING  "WITH A PRESENT VALUE OF $ #,###,###.##, AN ANNUAL INTEREST RATE OF ###.##%";PV#,I#
  380. 3800  LPRINT
  381. 3810  LPRINT  "AND PAYMENTS OF $ ";PMT1#;" MADE ";MO#;" TIMES EACH YEAR (";STORT$;") "
  382. 3820  LPRINT
  383. 3830  LPRINT USING  "OVER A PERIOD OF ### MONTHS, AND A FUTURE VALUE OF $ #,###,###.##.";N#,FV#
  384. 3840  LPRINT
  385. 3850  LPRINT  "     THE TERMINATION VALUE WAS CALCULATED BY INCREASING THE PERIOD"
  386. 3860  LPRINT
  387. 3870  LPRINT  "ENDING BALANCE ";A%;"% TO COVER ADMINISTRATIVE COSTS OF EARLY TERMINATION."
  388. 3880  LPRINT CHR$(12)
  389. 3890  LET CC = CC - 1
  390. 3900  IF CC > 0 THEN 3290
  391. 3910  GOTO 620
  392. 3920  LPRINT USING  "  ###  #,###,###.##  #,###,###.## #,###,###.## #,###,###.## #,###,###.##";PER#,BBAL# ,PMT# ,I2# ,EBAL# ,TEV#
  393. 3930  RETURN
  394. 3940  I2# = 0
  395. 3945  LET TEMP$ = "N"
  396. 3960  RETURN
  397. 3970  FOR B=1 TO 7
  398. 3980  LPRINT
  399. 3990  NEXT B
  400. 4000  RETURN
  401. 4010  REM ****************** I.R.R. *********************************
  402. 4020  FOR X  =  1 TO 60:CF#(X)  =  0:NEXT X
  403. 4030  TE# = 0:PE# = 0:PF# = 0:IR# = 0:FV# = 0:CFTOT = 0
  404. 4040  CLS
  405. 4050  PRINT "                        *** I.R.R. CALCULATOR ***
  406. 4060  PRINT : PRINT
  407. 4070  PRINT "           WHAT IS THE AMOUNT OF THE INVESTMENT"
  408. 4080  INPUT "                       AT POINT '0'                ";PV#
  409. 4090  PRINT
  410. 4100  PRINT "           WHAT IS THE VALUE OF THE INVESTMENT,"
  411. 4110  INPUT "              IF ANY, AT END OF LAST PERIOD       ";FV#
  412. 4120  CFTOT = FV#
  413. 4130  PRINT
  414. 4140  INPUT "           HOW MANY PERIODS PER YEAR               ";MO#
  415. 4150  PRINT
  416. 4160  INPUT "           HOW MANY PERIODS IN TOTAL (MAX. = 60)   ";N#
  417. 4170  TST#  =  PV#*MO#*N#
  418. 4180  IF TST#  =  0 THEN GOSUB 6070: GOTO 4010
  419. 4190  IF N# > 60 THEN GOSUB 6070: GOTO 4010
  420. 4200  IF N# < MO# THEN GOSUB 6070: GOTO 4010
  421. 4210  PRINT
  422. 4220  CLS
  423. 4230  PRINT : PRINT
  424. 4240  FOR X = 1 TO N#:PRINT "             FLOW FOR PERIOD #     ";X;:INPUT S$
  425. 4250  IF S$  =  "S" OR S$   = "s" THEN CF#(X)  =  CF#(X-1) ELSE CF#(X)  =  VAL(S$)
  426. 4260  CFTOT  =  CFTOT+CF#(X)
  427. 4270  NEXT X
  428. 4280  IF CFTOT  =< PV# THEN GOSUB 6070
  429. 4290  IF CFTOT  =< PV# THEN 4010
  430. 4300  CLS
  431. 4310  FOR X  =  1 TO 10:PRINT:NEXT X
  432. 4320  PRINT "                 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
  433. 4330  PRINT "                 $$$ PLEASE STAND-BY WHILE I THINK THIS THROUGH $$$"
  434. 4340  PRINT "                 $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
  435. 4350  BEEP
  436. 4360  IR#  = 0.15/MO#:I1#  = 0.25
  437. 4370  PF#  =  FV#/(1+IR#)^N#
  438. 4380  TE#  = 0
  439. 4390  FOR X  =  1 TO N#
  440. 4400  PE#  =  CF#(X)/(1+IR#)^X
  441. 4410  TE#  =  TE#+PE#
  442. 4420  NEXT X
  443. 4430  I1#  =  IR#*(PF#+TE#)/PV#
  444. 4440  IF ABS(IR#-I1#) < 9.8E-08 THEN IR#  =  IR#*MO#*100:GOTO 4460
  445. 4450  IR#  =  I1#:GOTO 4370
  446. 4460  CLS:PRINT:PRINT
  447. 4470  PRINT "                      THE INTERNAL RATE OF RETURN"
  448. 4480  PRINT
  449. 4490  PRINT "                           >>> PER ANNUM <<<"
  450. 4500  PRINT
  451. 4510  PRINT "                     FOR THIS SERIES OF CASH FLOWS"
  452. 4520  PRINT
  453. 4530  PRINT "                                   IS"
  454. 4540  PRINT:PRINT
  455. 4550  BEEP
  456. 4560  PRINT USING "                          >>>>> ###.##% <<<<<";IR#
  457. 4570  PRINT:PRINT:PRINT:PRINT:PRINT
  458. 4580  PRINT "               HIT 'H' FOR HARDCOPY, 'R' FOR RECOMPUTE,"
  459. 4590  PRINT "                         OR 'M' FOR MAIN MENU."
  460. 4600  C$  = INKEY$:IF C$  =  "" THEN 4600
  461. 4610  IF C$  =  "H" GOTO 4640
  462. 4620  IF C$  =  "R" THEN 4040
  463. 4630  GOTO 620
  464. 4640  REM ****************** I.R.R. HARDCOPY *************************
  465. 4650  CLS
  466. 4660  FOR X  =  1 TO 10:PRINT:NEXT X
  467. 4670  PRINT "                              $$$$$$$$$$$$$$$$$$$$$$$$$"
  468. 4680  PRINT "                              $$$$ P R I N T I N G $$$$"
  469. 4690  PRINT "                              $$$$$$$$$$$$$$$$$$$$$$$$$"
  470. 4700  LPRINT:LPRINT
  471. 4710  LPRINT "                                 YOUR NAME HERE"
  472. 4720  LPRINT "                               YOUR ADDRESS HERE"
  473. 4730  LPRINT "                                PEORIA, ILLINOIS
  474. 4740  LPRINT "                                     616xx"
  475. 4750  LPRINT:LPRINT
  476. 4760  LPRINT "                $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
  477. 4770  LPRINT "                $$$ INTERNAL RATE OF RETURN CALCULATION $$$"
  478. 4780  LPRINT "                $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
  479. 4790  LPRINT:LPRINT:LPRINT
  480. 4800  LPRINT "     THIS I.R.R. CALCULATION WAS BASED ON:"
  481. 4810  LPRINT
  482. 4820  LPRINT USING "        AN INVESTMENT AT POINT '0' OF $ #,###,###.##";PV#
  483. 4830  LPRINT
  484. 4840  LPRINT USING "        A VALUE AT TERMINATION OF     $ #,###,###.##";FV#
  485. 4850  LPRINT
  486. 4860  LPRINT USING "        ## PERIODS PER YEAR";MO#
  487. 4870  LPRINT
  488. 4880  LPRINT USING "        A TOTAL OF ### PERIODS";N#
  489. 4890  LPRINT
  490. 4900  LPRINT "        AND THE FOLLOWING CASH FLOWS FOR THE PERIODS INDICATED;"
  491. 4910  LPRINT:LPRINT
  492. 4920  FOR X  =  1 TO N#
  493. 4930  LPRINT USING "                 CASH FLOW IN PERIOD  ### = $ #,###,###.##";X,CF#(X)
  494. 4940  LPRINT
  495. 4950  NEXT X
  496. 4960  LPRINT:LPRINT
  497. 4970  LPRINT "                      THE INTERNAL RATE OF RETURN"
  498. 4980  LPRINT
  499. 4990  LPRINT "                           >>> PER ANNUM <<<"
  500. 5000  LPRINT
  501. 5010  LPRINT "                     FOR THIS SERIES OF CASH FLOWS "
  502. 5020  LPRINT
  503. 5030  LPRINT "                                  IS"
  504. 5040  LPRINT
  505. 5050  LPRINT USING "                          >>>>> ###.##% <<<<<";IR#
  506. 5060  LPRINT CHR$(12)
  507. 5070  GOTO 620
  508. 5080  REM ******************* PV# OF CASH FLOW SERIES *****************
  509. 5090  FOR X = 1 TO 60:CF#(X) = 0:PV#(X) = 0:NEXT X
  510. 5100  LET PVTOT# = 0
  511. 5110  CLS
  512. 5120  PRINT
  513. 5130  PRINT "                         *** NPV CALCULATOR ***"
  514. 5140  PRINT : PRINT
  515. 5150  PRINT "            WHAT IS THE VALUE, IF ANY, AT "
  516. 5160  INPUT "                 THE END OF THE LAST PERIOD            ";FV#
  517. 5170  PRINT
  518. 5180  INPUT "            HOW MANY PERIODS PER YEAR                  ";MO#
  519. 5190  PRINT
  520. 5200  INPUT "            HOW MANY PERIODS IN TOTAL (MAX. = 60)      ";N#
  521. 5210  IF N# > 60 THEN GOSUB 6070: GOTO 5080
  522. 5220  IF N# < MO# THEN GOSUB 6070: GOTO 5080
  523. 5230  PRINT
  524. 5240  PRINT "            AT WHAT ANNUAL INTEREST RATE SHOULD"
  525. 5250  INPUT "                 THE CASH FLOWS BE DISCOUNTED          ";I#
  526. 5260  TST# = MO#*N#*I#
  527. 5270  IF TST# = 0 THEN GOSUB 6070: GOTO 5080
  528. 5280  I# = I#/MO#/100
  529. 5290  PRINT
  530. 5300  CLS
  531. 5310  FOR X = 1 TO N#
  532. 5320  PRINT "            WHAT IS THE FLOW IN PERIOD ";X;:INPUT S$
  533. 5330  IF S$ = "S" THEN CF#(X) = CF#(X-1) ELSE CF#(X) = VAL(S$)
  534. 5340  PV#(X) = CF#(X)*((1+I#)^-X)
  535. 5350  PVTOT# = PVTOT#+PV#(X)
  536. 5360  NEXT X
  537. 5370  TV# = FV#*((1+I#)^-N#)
  538. 5380  PVTOT# = PVTOT#+TV#
  539. 5390  PVTOT# = ABS(PVTOT#)
  540. 5400  CLS
  541. 5410  PRINT : PRINT
  542. 5420  PRINT "                            THE NET PRESENT VALUE OF"
  543. 5430  PRINT
  544. 5440  PRINT "                              THE GIVEN CASH FLOWS"
  545. 5450  PRINT
  546. 5460  PRINT "                                       IS"
  547. 5470  PRINT
  548. 5480  BEEP
  549. 5490  PRINT USING "                           >>>>> $ #,###,###.## <<<<<";PVTOT#
  550. 5500  PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
  551. 5510  PRINT "                    HIT 'H' FOR HARDCOPY, 'R' FOR RECOMPUTE,"
  552. 5520  PRINT "                             OR 'M' FOR MAIN MENU."
  553. 5530  C$ =INKEY$:IF C$ = "" THEN 5530
  554. 5540  IF C$ = "H" THEN 5580
  555. 5550  IF C$ = "R" THEN 5080
  556. 5560  GOTO 620
  557. 5570  REM ****************** N.P.V. HARDCOPY ************************
  558. 5580  LPRINT:LPRINT
  559. 5590  CLS
  560. 5600  FOR X = 1 TO 10:PRINT:NEXT X
  561. 5610  PRINT "                              $$$$$$$$$$$$$$$$$$$$$$$$$"
  562. 5620  PRINT "                              $$$$ P R I N T I N G $$$$"
  563. 5630  PRINT "                              $$$$$$$$$$$$$$$$$$$$$$$$$"
  564. 5640  BEEP
  565. 5650  LPRINT "                                YOUR NAME HERE"
  566. 5660  LPRINT "                            YOUR STREET ADDRESS HERE"
  567. 5670  LPRINT "                               PEORIA, ILLINOIS"
  568. 5680  LPRINT "                                    616xx"
  569. 5690  LPRINT:LPRINT
  570. 5700  LPRINT "                    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
  571. 5710  LPRINT "                    $$$ NET PRESENT VALUE CALCULATION $$$"
  572. 5720  LPRINT "                    $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"
  573. 5730  LPRINT:LPRINT
  574. 5740  LPRINT "          THIS NET PRESENT VALUE CALCULATION WAS BASED ON:"
  575. 5750  LPRINT
  576. 5760  LPRINT USING "               A TERMINATION VALUE OF $ #,###,###.##  (INCLUDED IN";FV#
  577. 5770  LPRINT "                     THE LAST CASH FLOW)"
  578. 5780  LPRINT
  579. 5790  LPRINT USING "               ## PERIOD(S) PER YEAR";MO#
  580. 5800  LPRINT
  581. 5810  LPRINT USING "               A TOTAL OF ## PERIODS";N#
  582. 5820  LPRINT
  583. 5830  LPRINT USING "               AN ANNUAL DISCOUNT RATE OF ###.##%";I#*MO#*100
  584. 5840  LPRINT
  585. 5850  LPRINT "               AND THE FOLLOWING CASH FLOWS FOR THE PERIODS INDICATED:"
  586. 5860  LPRINT:LPRINT
  587. 5870  LPRINT "                                   CASH             PRESENT"
  588. 5880  LPRINT "                PERIOD             FLOW              VALUE"
  589. 5890  LPRINT "                ------          ---------          ---------"
  590. 5900  LPRINT
  591. 5910  FOR X = 1 TO N#
  592. 5920  IF X = N# THEN CF#(N#) = CF#(N#)+FV#
  593. 5930  IF X = N# THEN PV#(N#) = PV#(N#)+TV#
  594. 5940  LPRINT USING "                 ##          #,###,###.##       #,###,###.##" ;X,CF#(X),PV#(X)
  595. 5950  NEXT X
  596. 5960  LPRINT:LPRINT:LPRINT
  597. 5970  LPRINT "                              THE NET PRESENT VALUE"
  598. 5980  LPRINT
  599. 5990  LPRINT "                             OF THE GIVEN CASH FLOWS"
  600. 6000  LPRINT
  601. 6010  LPRINT "                                       IS"
  602. 6020  LPRINT
  603. 6030  LPRINT USING "                         >>>>> $$#,###,###.## <<<<<";PVTOT#
  604. 6040  GOTO 620
  605. 6050  LPRINT CHR$(12)
  606. 6060  END
  607. 6070  REM ****************** DIVISION BY ZERO ***********************
  608. 6080  CLS
  609. 6090  PRINT:PRINT:PRINT:PRINT
  610. 6100  PRINT "                              $$$$$$$$$$$$$":PRINT
  611. 6110  PRINT "                              $$$ ERROR $$$":PRINT
  612. 6120  PRINT "                              $$$$$$$$$$$$$":PRINT:PRINT:PRINT
  613. 6130  BEEP
  614. 6140  PRINT "                        >>> PLEASE TRY AGAIN! <<<"
  615. 6150  PRINT:PRINT:PRINT
  616. 6160  PRINT "            HIT: 'S' FOR SAME COMPUTATION"
  617. 6170  PRINT "                 'M' FOR MAIN MENU"
  618. 6180  C$ =INKEY$:IF C$ = "" THEN 6180
  619. 6190  IF C$ = "M" THEN 620
  620. 6200  RETURN
  621. 6210  REM ****************** ON ERROR PROCESSING *******************
  622. 6220  CLS
  623. 6230  PRINT:PRINT:PRINT:PRINT
  624. 6240  PRINT "                              $$$$$$$$$$$$$":PRINT
  625. 6250  PRINT "                              $$$ ERROR $$$":PRINT
  626. 6260  PRINT "                              $$$$$$$$$$$$$"
  627. 6270  PRINT:PRINT:PRINT
  628. 6280  BEEP
  629. 6290  PRINT "                            PLEASE TRY AGAIN!"
  630. 6300  FOR COUNT=1 TO 1500:NEXT COUNT
  631. 6310  GOTO 620
  632.